#ifndef TERRAIN_HPP_
# define TERRAIN_HPP_

# include "3D/DrawableObject.hpp"
# include "3D/Texture.hpp"
# include "TextureBehaviour.hpp"

class Terrain
{
public:
    Terrain();
    Terrain(const int width, const int height, DrawableObject* terrain);

    ~Terrain();

    void                draw();
    void                update();

    void                changeTextCoordSystem(const TextureBehaviour behaviour);
    VertexAttributes**  findVertices(const unsigned char r, const unsigned char g, const unsigned char b, const unsigned int nbObject);

    int                 getWidth() const;
    void                setWidth(const int width);

    int                 getHeight() const;
    void                setHeight(const int height);

    void                setDimensions(const int newWidth, const int newHeight);

    DrawableObject*     getDrawable();
    void                setDrawable(DrawableObject* drawable);

    Texture*            getTexture();
    void                setTexture(Texture* texture);

private:
    int                 _width;
    int                 _height;

    DrawableObject*     _drawable;
    Texture*            _texture;

};

# endif // TERRAIN_HPP
